// 导入数据库
const { userInfo } = require('os')
const db = require('../db/index')


// 添加笔记的处理函数
exports.addNotes = (req, res) => {
    const username = req.user.username
    // 接收表单数据
    const notesInfo = req.body
    // 判断表单数据禁止为空
    if (!notesInfo.notes_title || !notesInfo.notes_content || !notesInfo.notes_time) {
        return res.send({ status: 1, message: '内容不合法！' })
    }
    //定义sql插入语句，插入新的笔记
    const sql = 'insert into db_notes (notes_title,notes_content,notes_time,notes_attributed) values ($notes_title,$notes_content,$notes_time,$notes_attributed)'
    db.run(sql, { $notes_title: notesInfo.notes_title, $notes_content: notesInfo.notes_content, $notes_time: notesInfo.notes_time, $notes_attributed: username }, (err, results) => {
        //如果发生错误，返回错误信息
        if (err) { return res.send({ status: 1, message: err.message }) }
        //通过以上所有if都没有被return出去，代表笔记插入成功
        const sql = 'select * from db_notes where notes_attributed = ? '
        db.all(sql, username, (err, results) => {
            //如果发生错误，返回错误信息
            if (err) { return res.cc(err.message) }
            res.send({
                status: 0,
                message: '获取用户笔记成功',
                data: results,
            })
        })
    })
}

// 获取笔记的处理函数
exports.getNotes = (req, res) => {
    // 判断是获取哪一个用户的笔记
    const attributed = req.user.username
    //定义sql插入语句，查询该用户的所有笔记返回
    const sql = 'select * from db_notes where notes_attributed = ? '
    db.all(sql, attributed, (err, results) => {
        //如果发生错误，返回错误信息
        if (err) { return res.cc(err.message) }
        res.send({
            status: 0,
            message: '获取用户笔记成功',
            data: results,
        })
    })
}

// 更新路由的处理函数
exports.updateNotes = (req, res) => {
    const username = req.user.username
    // 接收表单数据
    const notesInfo = req.body
    // 判断表单数据禁止为空
    if (!notesInfo.notes_title || !notesInfo.notes_content || !notesInfo.notes_time) {
        return res.send({ status: 1, message: '内容不合法！' })
    }
    //定义sql插入语句，插入新的笔记
    const sql = 'update db_notes set notes_title = ? ,notes_content=?,notes_time=?,notes_attributed=? where id = ?'
    db.run(sql, [notesInfo.notes_title, notesInfo.notes_content, notesInfo.notes_time, username, notesInfo.id], (err, results) => {
        //如果发生错误，返回错误信息
        if (err) { return res.send({ status: 1, message: err.message }) }
        // 没有return出去就是插入成功，将该用户的所有笔记重新返回给客户端
        const sql = 'select *from db_notes where notes_attributed = ?'
        db.all(sql, username, (err, results) => {
            //如果发生错误，返回错误信息
            if (err) { return res.cc(err.message) }
            res.send({
                status: 0,
                message: '更新用户笔记成功',
                data: results,
            })
        })
    })
}

// 删除笔记路由的处理函数
exports.deleteNotes = (req, res) => {
    const username = req.user.username
    // 接收表单数据
    const notesInfo = req.body
    // 判断表单数据禁止为空
    if (!notesInfo.id) return res.send({ status: 1, message: '内容不合法！' })
    //定义sql插入语句，插入新的笔记
    const sql = 'delete from db_notes where id = $id and notes_attributed = $notes_attributed'
    db.run(sql, { $id: notesInfo.id, $notes_attributed: username }, (err) => {
        if (err) return res.cc(err)
        res.send({
            status: 0,
            message: '删除笔记成功'
        })
    })
}